package com.uraurora.crescent.ai.fsm;

/**
 * @author gaoxiaodong
 */
public interface IState<E> {
    /** This method will execute when the state is entered.
     *
     * @param entity the entity entering the state */
    public void enter (E entity);

    /** This is the state's normal update com.uraurora.crescent.function
     *
     * @param entity the entity lasting the state */
    public void update (E entity);

    /** This method will execute when the state is exited.
     *
     * @param entity the entity exiting the state */
    public void exit (E entity);
}
